1
Cái thước đo hiệu suất: Tại sao ký hiệu Big O lại là ngôn ngữ chung của lập trình viên?
AI028Lesson 2
00:00

Độ phức tạp thời gian (Time Complexity) Không phải là đo số giây tuyệt đối mà thuật toán chạy, mà là một hàm toán học mô tả cách thời gian chạy của thuật toán tăng lên theo kích thước bài toán $n$. Nó dựa trên nguyên tắc cốt lõi rằng 'phân tích thuật toán là một phương pháp đo lường thuật toán độc lập với triển khai'.

Kích thước nThời gian T(n)O(n²)O(n)O(log n)O(1)

Tại sao nó lại là ngôn ngữ chung?

  • Sự tiến hóa định lượng:Ký hiệu Big O bỏ qua các hạng thấp và hằng số, chỉ tập trung vàocấp số (Order of Magnitude).
  • Tính xác định trong đo lườngLập trình viên thường lấytình huống xấu nhất (Worst Case) làm chuẩn để đảm bảo giới hạn dưới cho hiệu suất.
  • Quyết định vượt môi trườngDù ở máy tính siêu mạnh hay vi xử lý nhúng, việc tối ưu từ $O(n^2)$ xuống $O(n \log n)$ đều mang lại lợi ích về bản chất.
Phương pháp đếm (Counting)
Tính số lần xuất hiện của mỗi ký tự trong hai chuỗi. Nếu danh sách đếm ký tự giống nhau, thì hai chuỗi chắc chắn là hoán vị của nhau. Phương pháp này đạt được phương pháp đếm: $O(n)$ hiệu quả cao.